﻿'''
题目描述
疫情过后，希望小学终于又重新开学了，三年二班开学第一天的任务是将后面的黑板报重新制作。
黑板上已经写上了N个正整数，同学们需要给这每个数分别上一种颜色。
为了让黑板报既美观又有学习意义，老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。
现在请你帮帮小朋友们，算算最少需要多少种颜色才能给这N个数进行上色。
输入描述
第一行有一个正整数N。
第二行有N个int型数(保证输入数据在[1,100]范围中)，表示黑板上各个正整数的值。
输出描述
输出只有一个整数，为最少需要的颜色种数。
示例1
输入
3
2 4 6
输出
1
说明
所有数都能被2整除
示例2
输入
4
2 3 4 9
输出
2
说明
2与4涂一种颜色，4能被2整除；3与9涂另一种颜色，9能被3整除。不能4个数涂同一个颜色，因为3与9不能被2整除。所以最少的颜色是两种。
'''
#输入描述：第一行有一个正整数N。
#第二行有N个int型数(保证输入数据在[1,100]范围中)，表示黑板上各个正整数的值。
#输出描述：输出只有一个整数，为最少需要的颜色种数。

#读入第一行有一个正整数N，
n = int(input())
#读入并存储到数组：第二行有N个int型数(保证输入数据在[1,100]范围中)，表示黑板上各个正整数的值。
numArr = list(map(int,input().split()))

#定义color数组用来存储最小的涂色数字和涂色个数
colorArr = []
colorCount = 0
#遍历数组并更新color数组和个数
for i in range(len(numArr)):
    foundNum = False    #初始化为未找到
    for j in range(len(colorArr)):
        if numArr[i] % colorArr[j] == 0:
            foundNum = True     #从已有数组找到可以整除最小数
            break   #跳出循环
    #如果未找到，则添加到color数组,涂色数+1
    if not foundNum:
        colorArr.append(numArr[i])
        colorCount += 1
#输出最少涂色数
print(colorCount)

